package 房屋租赁系统.service;

import 房屋租赁系统.domain.House;

/**
 * @author hyhWTX
 * @version 1.0
 * @date 2022年05月22日 23:29
 */
public class HouseService {
    private House[] houses;//保存房屋信息
    private int houseNums = 1;//记录房屋信息
    private int idCounter = 1;//记录当前的ID增长的值

    //构造器
    public HouseService(int size) {
        houses = new House[size];
        //创建一个HouseService对象的时候，指定其数组大小
        //初始化对象
        //houses[0] = new House("Tom", 1, "10086", 2000, "未出租");
    }

    //find方法，返回house对象或者为一个空值
    public House findById(int findId) {
        for (int i = 0; i < houseNums; i++) {
            if (findId == houses[i].getId()) {
                return houses[i];
            }
        }
        return null;
    }

    //删除方法，用于删除房屋信息
    public boolean delete(int deleteId) {
        //找到删除的房屋信息，但是注意下标与房屋编号不是一回事，注意不要误用
        int index = -1;
        for (int i = 0; i < houseNums; i++) {
            if (deleteId == houses[i].getId()) {//删除的房屋对应的id，在数组下标为i的元素
                index = i;//使用index记录i
            }
        }
        if (index == -1) {//说明deleteId在数组中不存在
            return false;
        }

        //找到的情况下删除
        for (int i = index; i < houseNums; i++) {
            houses[i] = houses[i + 1];

        }
        houses[houseNums - 1] = null;
        houseNums--;
        return true;
    }

    //add方法，添加新对象，返回一个boolean值
    public boolean add(House newHouse) {
        if (houseNums == houses.length) {
            System.out.println("房屋存储数组已满，请停止添加信息!");
            return false;
        }
        houses[houseNums] = newHouse;//将添加进来的房屋置于数组的最后部分
        //设置房屋信息自增
        houseNums++;
        newHouse.setId(idCounter);
        return true;

    }
    //返回houses
    public House[] list(){
        return houses;
    }
}
